package com.scm.service;

import com.scm.common.core.domain.entity.SysUser;
import com.scm.dto.req.inventory.SaveScmInventoryInReq;
import com.scm.dto.resp.invent.QueryInventoryInPageResp;
import com.scm.dto.resp.invent.ScmInventoryInDetailDo;
import com.scm.persist.model.ScmInventoryIn;
import com.scm.persist.model.ScmInventoryInDetail;

import java.util.List;

/**
 * 库存-入库信息Service接口
 * 
 * @author reptilemanager
 * @date 2024-03-17
 */
public interface IScmInventoryInService 
{

    /**
     * 查询库存-入库信息
     * 
     * @param id 库存-入库信息主键
     * @return 库存-入库信息
     */
    public ScmInventoryIn selectScmInventoryInById(Long id);

    /**
     * 查询库存-入库信息列表
     * 
     * @param scmInventoryIn 库存-入库信息
     * @return 库存-入库信息集合
     */
    public QueryInventoryInPageResp selectScmInventoryInList(ScmInventoryIn scmInventoryIn,  Integer start, Integer size);

    /**
     * 新增库存-入库信息
     * 
     * @param scmInventoryIn 库存-入库信息
     * @return 结果
     */
    public int insertScmInventoryIn(ScmInventoryIn scmInventoryIn);

    /**
     * 修改库存-入库信息
     * 
     * @param scmInventoryIn 库存-入库信息
     * @return 结果
     */
    public int updateScmInventoryIn(ScmInventoryIn scmInventoryIn);

    /**
     * 批量删除库存-入库信息
     * 
     * @param id 需要删除的库存-入库信息主键集合
     * @return 结果
     */
    public int deleteScmInventoryInById(String id);

    /**
     * 删除库存-入库信息信息
     * 
     * @param id 库存-入库信息主键
     * @return 结果
     */
    public int deleteScmInventoryInById(Long id);


    public List<ScmInventoryInDetailDo> selectScmInventoryInDetailListList(Long inventoryInId);

    public int saveScmInventoryIn(SaveScmInventoryInReq req , SysUser sysUser);

    public int updateScmInventoryIn(SaveScmInventoryInReq req , SysUser sysUser);


    public int confirmScmInventoryIn(Long inventoryInId , SysUser sysUser);





}
